From a protocol stack perspective, service layers are typically layered on top of existing network protocol stacks. A service layer may be a software layer that hosts resources and services. A service may refer to a set of software functionalities that are accessed via a supported interface. A resource generally refers to an addressable entity having a representation that may be manipulated via various commands. Thus, service layers can provide value-added services to client applications and other services, and service layers are often categorized as “middleware” service layers. For example, FIG. 1 depicts an example networking protocol stack 100 that depicts a service layer 22 between applications 20 and various networking protocols 102, such as application protocols 104. In accordance with the example depicted in FIG. 1, the service layer 22 can support value-added service capabilities through a set of application programming interfaces (APIs) and underlying networking interfaces. By way of another example, the service layer 22 can be layered directly over a transport protocol 106, such as transmission control protocol (TCP) or user datagram protocol (UDP) for example. By way of yet another example, the service layer 22 can be layered directly over a protocol that is not in accordance with a representational state transfer (RESTful) architecture, which can be referred to as a non-RESTful protocol, such as simple object access protocol (SOAP) for example.
A node or entity may register to a service layer. The terms node and entity are used interchangeably herein, without limitation, unless otherwise specified. A node or entity that registers to a service layer may be referred to as a service layer registrant. Entities that may register to a given service layer may include, for example, an individual service, an application, or another instance of the service layer. Existing service layers may support some discovery mechanisms. Such discovery mechanisms allow registrants of a given service layer to query the given service layer to find resources that are hosted by the given service layer. Such discovery mechanisms, however, lack capabilities, such as capabilities related to permissions associated with a given registrant for example.